Daisy chains are notoriously unfair structures in networking. For example, when network elements such as switches are communicatively connected in a daisy chain configuration, the first network element in the daisy chain configuration gets the least amount of bandwidth unless measures are taken. This is commonly referred to as the parking lot problem.
The parking lot problem can be addressed by per-flow queuing where incoming packets are separated into flows. The packets of each flow share a set of common characteristics such as a source IP address, a destination IP address, a source port, a destination port, a protocol, a service to be performed on the packet or any other packet characteristic. Scheduling decisions are made for each flow. However, because of the large number of possible flows, particularly in cases where the network elements are connected in a daisy chain configuration, per-flow queuing can become exceptionally expensive.
Alternatively, the parking lot problem can be addressed by per-flow accounting combined with per-flow dropping. However, per-flow accounting and dropping requires packets to be queued at each node. The latency experienced by each packet is therefore increased because it is related to how many network elements the packet needs to traverse in the daisy chain. Additionally, per-flow accounting and dropping requires maintenance of per-flow drop counters at each of the network elements to avoid loss of information. Accordingly, per-flow queuing and per-flow accounting and dropping may not be feasible to solve the parking lot problem in every networking scenario.